#ifndef __M3G_VIEW_HPP__
#define __M3G_VIEW_HPP__

#include <FL/Fl_Gl_Window.H>
#include <FL/Fl.H>


namespace m3g_viewer
{
    class MainView;
    class Scene;
    class CameraController;

/**
 *
 */
class M3gView : public Fl_Gl_Window
{
public:
    M3gView (MainView* view);
    virtual ~M3gView ();

    virtual void draw ();

    virtual int handle (int event);

    void init ();
    
    void load (const char* name);

    void handle_mouse_event (int event);

    CameraController* get_camera_controller ();

    Scene* get_scene ();

public:
    MainView*         main_view;
    Scene*            scene;
    CameraController* camera_controller;

    int mouse_x;
    int mouse_y;
};


}  // using namespace m3g_viewer


#endif

